| Visual Basic (Declaration) | |
|---|---|
Public Overloads Overrides Function GetCharCount( _ ByVal bytes() As Byte, _ ByVal index As Integer, _ ByVal count As Integer _ ) As Integer | |
| Visual Basic (Usage) | Copy Code |
|---|---|
Dim instance As ImapUTF7Encoding Dim bytes() As Byte Dim index As Integer Dim count As Integer Dim value As Integer value = instance.GetCharCount(bytes, index, count) | |
Parameters
- bytes
- The byte array to decode.
- index
- The index of the first byte in bytes to decode.
- count
- The number of bytes to decode.
Return Value
The number of characters that would result from decoding the specified range of elements in bytes.| Exception | Description |
|---|---|
| System.ArgumentNullException | bytes is a null reference. |
| System.ArgumentOutOfRangeException | index and count do not denote a valid range in bytes. |
The following example demonstrates encoding/decoding data using the ImapUTF7Encoding class.
| Visual Basic | Copy Code |
|---|---|
Private Sub ImapUTF7Test() ' Create Unicode character array ' ChrW(35) = # ' ChrW(37) = % ' ChrW(928) = Pi ' ChrW(931) = Sigma Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)} ' Initialize ImapUTF7 encoder Dim ImapUTF7 As New ImapUTF7Encoding() ' Determine how big target byte array needs to be Dim Count As Integer = ImapUTF7.GetByteCount(chars, 0, chars.Length) ' You could also use the following to get the maximum size ' Dim Count As Integer = ImapUTF7.GetMaxByteCount(chars.Length) Debug.WriteLine(Count & " bytes needed to encode characters.") ' Initialize target byte array Dim Bytes(Count - 1) As Byte ' Encode data Count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0) Debug.WriteLine(Count & " bytes encoded.") ' Show encoded bytes Dim B As Byte For Each B In Bytes Debug.WriteLine(B) Next ' Now to decode...first determine how big target char array needs to be Count = ImapUTF7.GetCharCount(Bytes, 0, Bytes.Length) ' You could also use the following to get the maximum size ' Count = ImapUTF7.GetMaxCharCount(Bytes.Length) Debug.WriteLine(Count & " characters needed to decode bytes.") ' Initialize target char array ReDim chars(Count - 1) ' Decode data Count = ImapUTF7.GetChars(Bytes, 0, Bytes.Length, chars, 0) Debug.WriteLine(Count & " bytes decoded.") ' Show decoded characters Dim C As Char For Each C In chars Debug.WriteLine(C) Next End Sub | |
| C# | Copy Code |
|---|---|
private void ImapUTF7Test() { // Create Unicode character array char[] chars = { '\u0023', // # '\u0025', // % '\u03a0', // Pi '\u03a3' // Sigma }; // Initialize ImapUTF7 encoder ImapUTF7Encoding ImapUTF7 = new ImapUTF7Encoding(); // Determine how big target byte array needs to be int count = ImapUTF7.GetByteCount(chars, 0, chars.Length); // You could also use the following to get the maximum size // int count = ImapUTF7.GetMaxByteCount(chars.Length); Debug.WriteLine(count + " bytes needed to encode characters."); // Initialize target byte array byte[] bytes = new byte[count]; // Encode data count = ImapUTF7.GetBytes(chars, 0, chars.Length, bytes, 0); Debug.WriteLine(count + " bytes encoded."); // Show encoded bytes foreach(byte b in bytes) Debug.WriteLine(b); // Now to decode...first determine how big target char array needs to be count = ImapUTF7.GetCharCount(bytes, 0, bytes.Length); // You could also use the following to get the maximum size // count = ImapUTF7.GetMaxCharCount(bytes.Length); Debug.WriteLine(count + " characters needed to decode bytes."); // Initialize target char array chars = new char[count]; // Decode data count = ImapUTF7.GetChars(bytes, 0, bytes.Length, chars, 0); Debug.WriteLine(count + " bytes decoded."); // Show decoded characters foreach(char c in chars) Debug.WriteLine(c); } | |
Use ImapUTF7Encoding.GetCharCount to calculate exactly, or ImapUTF7Encoding.GetMaxCharCount to calculate at most, the array size required by the ImapUTF7Encoding.GetChars method to store decoded bytes.
Target Platforms: Microsoft .NET Framework 2.0